|
In aspect-oriented software development, cross-cutting concerns are aspects of a program that affect other concerns. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and can result in either ''scattering'' (code duplication), ''tangling'' (significant dependencies between systems), or both. For instance, if writing an application for handling medical records, the indexing of such records is a core concern, while logging a history of changes to the record database or user database, or an authentication system, would be cross-cutting concerns since they interact with more parts of the program. ==Background== Cross-cutting concerns are parts of a program that rely on or must affect many other parts of the system. They form the basis for the development of aspects.〔U.S. Patent 6467086, p.4〕 Such cross-cutting concerns do not fit cleanly into object-oriented programming or procedural programming.〔Kiczales, p.1〕 Cross-cutting concerns can be directly responsible for ''tangling'', or system inter-dependencies, within a program. Because procedural and functional language constructs consist entirely of procedure calling, there is no semantic through which two goals (the capability to be implemented and the related cross-cutting concern) can be addressed simultaneously.〔Kiczales, p.6〕 As a result, the code addressing the cross-cutting concern must be ''scattered'', or duplicated, across the various related locations, resulting in a loss of modularity.〔 Aspect-oriented programming aims to encapsulate cross-cutting concerns into aspects to retain modularity. This allows for the clean isolation and reuse of code addressing the cross-cutting concern.〔Kiczales, p.2〕 By basing designs on cross-cutting concerns, software engineering benefits are affected, including modularity and simplified maintenance.〔Li, p.1〕 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Cross-cutting concern」の詳細全文を読む スポンサード リンク
|